{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-platform-mail",
      "artifactVersion": "2023.11.13",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.binary.metadata",
          "org.nuxeo.directory.mongodb",
          "org.nuxeo.dmk-adaptor",
          "org.nuxeo.ecm.audit.io",
          "org.nuxeo.ecm.default.config",
          "org.nuxeo.ecm.jwt",
          "org.nuxeo.ecm.permissions",
          "org.nuxeo.ecm.platform",
          "org.nuxeo.ecm.platform.api",
          "org.nuxeo.ecm.platform.collections.core",
          "org.nuxeo.ecm.platform.commandline.executor",
          "org.nuxeo.ecm.platform.convert",
          "org.nuxeo.ecm.platform.csv.export",
          "org.nuxeo.ecm.platform.dublincore",
          "org.nuxeo.ecm.platform.filemanager",
          "org.nuxeo.ecm.platform.htmlsanitizer",
          "org.nuxeo.ecm.platform.mail",
          "org.nuxeo.ecm.platform.oauth",
          "org.nuxeo.ecm.platform.oauth1",
          "org.nuxeo.ecm.platform.pdf",
          "org.nuxeo.ecm.platform.query.api",
          "org.nuxeo.ecm.platform.rendering",
          "org.nuxeo.ecm.platform.threed",
          "org.nuxeo.ecm.platform.thumbnail",
          "org.nuxeo.ecm.platform.types",
          "org.nuxeo.ecm.platform.url",
          "org.nuxeo.ecm.platform.usermanager",
          "org.nuxeo.ecm.quota",
          "org.nuxeo.ecm.webdav",
          "org.nuxeo.importer.stream",
          "org.nuxeo.mail",
          "org.nuxeo.mongodb.audit",
          "org.nuxeo.search.ui",
          "org.nuxeo.usermapper"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.platform",
        "id": "grp:org.nuxeo.ecm.platform",
        "name": "org.nuxeo.ecm.platform",
        "parentIds": [],
        "readmes": [
          {
            "blobProviderId": "default",
            "content": "# Nuxeo Platform Importer\n\n## About Nuxeo Platform Importer\n\nThe file importer comes as a Java library (with nuxeo runtime service) and a sample JAX-RS interface to launch, monitor and abort import jobs.\nThis project is an on-going project, supported by Nuxeo\n\n## Building\n### How to Build Nuxeo Platform Importer\nBuild the Nuxeo Platform Importer with Maven:\n```$ mvn install -Dmaven.test.skip=true```\n\n## Deploying\nNuxeo Platform Importer is available as two package add-ons [from the Nuxeo Marketplace]\nhttps://connect.nuxeo.com/nuxeo/site/marketplace/package/nuxeo-platform-importer\nhttps://connect.nuxeo.com/nuxeo/site/marketplace/package/nuxeo-scan-importer\n\n## Resources\n### Documentation\nThe documentation for Nuxeo Platform Importer is available in our Documentation Center: http://doc.nuxeo.com/x/gYBVAQ\n\n### Reporting Issues\nYou can follow the developments in the Nuxeo Platform project of our JIRA bug tracker, which includes a Nuxeo Platform Importer component:\nhttps://jira.nuxeo.com/browse/NXP/component/10621\n\nYou can report issues on: http://answers.nuxeo.com/\n\n## About Nuxeo\nNuxeo dramatically improves how content-based applications are built, managed and deployed, making customers more agile, innovative and successful. Nuxeo provides a next generation, enterprise ready platform for building traditional and cutting-edge content oriented applications. Combining a powerful application development environment with SaaS-based tools and a modular architecture, the Nuxeo Platform and Products provide clear business value to some of the most recognizable brands including Verizon, Electronic Arts, Sharp, FICO, the U.S. Navy, and Boeing. Nuxeo is headquartered in New York and Paris. More information is available at www.nuxeo.com.\n",
            "digest": "83bb2a4c6415c9f07db3ab17fa99510c",
            "encoding": "UTF-8",
            "length": 1753,
            "mimeType": "text/plain",
            "name": "README.md"
          }
        ],
        "version": "2023.11"
      },
      "bundleId": "org.nuxeo.ecm.platform.mail",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.operation.OperationServiceComponent--chains",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail/org.nuxeo.mail.automation.chains/Contributions/org.nuxeo.mail.automation.chains--chains",
              "id": "org.nuxeo.mail.automation.chains--chains",
              "registrationOrder": 4,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "name": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "type": "service"
              },
              "version": "2023.11.13",
              "xml": "<extension point=\"chains\" target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\">\n    <chain id=\"CreateMailDocumentFromAutomation\">\n      <operation id=\"Context.RestoreDocumentInput\">\n        <param name=\"name\" type=\"string\">mailFolder</param>\n      </operation>\n      <operation id=\"Document.Create\">\n        <param name=\"type\" type=\"string\">MailMessage</param>\n        <param name=\"name\" type=\"string\">expr:Context[\"mailDocumentName\"]</param>\n        <param name=\"properties\" type=\"properties\">expr:mail:messageId=@{messageId}\n        </param>\n      </operation>\n      <operation id=\"Context.SetInputAsVar\">\n        <param name=\"name\" type=\"string\">mailDocument</param>\n      </operation>\n      <operation id=\"Context.RunOperationOnList\">\n        <param name=\"id\" type=\"string\">ProcessAttachment</param>\n        <param name=\"list\" type=\"string\">attachments</param>\n        <param name=\"isolate\" type=\"boolean\">true</param>\n        <param name=\"item\" type=\"string\">attachment</param>\n      </operation>\n      <operation id=\"RunScript\">\n        <param name=\"script\" type=\"string\">\n\n           Context[\"mailDocument\"].setPropertyValue(\"dc:title\",Context[\"subject\"]);\n           Context[\"mailDocument\"].setPropertyValue(\"mail:htmlText\",Context[\"text\"]);\n           Context[\"mailDocument\"].setPropertyValue(\"mail:recipients\",Context[\"recipients\"]);\n           Context[\"mailDocument\"].setPropertyValue(\"mail:cc_recipients\",Context[\"ccRecipients\"]);\n           Context[\"mailDocument\"].setPropertyValue(\"mail:sending_date\",Context[\"sendingDate\"]);\n\n        </param>\n      </operation>\n      <operation id=\"Context.RestoreDocumentInput\">\n        <param name=\"name\" type=\"string\">mailDocument</param>\n      </operation>\n      <operation id=\"Document.Save\"/>\n    </chain>\n    <chain id=\"ProcessAttachment\">\n      <operation id=\"Context.RestoreBlobInput\">\n        <param name=\"name\" type=\"string\">attachment</param>\n      </operation>\n      <operation id=\"Blob.AttachOnDocument\">\n        <param name=\"document\" type=\"document\">expr:Context[\"mailDocument\"]</param>\n        <param name=\"save\" type=\"boolean\">false</param>\n        <param name=\"xpath\" type=\"string\">files:files</param>\n      </operation>\n    </chain>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail/org.nuxeo.mail.automation.chains",
          "name": "org.nuxeo.mail.automation.chains",
          "requirements": [],
          "resolutionOrder": 416,
          "services": [],
          "startOrder": 681,
          "version": "2023.11.13",
          "xmlFileContent": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<component name=\"org.nuxeo.mail.automation.chains\" version=\"1.0.0\">\n\n  <extension target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\" point=\"chains\">\n    <chain id=\"CreateMailDocumentFromAutomation\">\n      <operation id=\"Context.RestoreDocumentInput\">\n        <param type=\"string\" name=\"name\">mailFolder</param>\n      </operation>\n      <operation id=\"Document.Create\">\n        <param type=\"string\" name=\"type\">MailMessage</param>\n        <param type=\"string\" name=\"name\">expr:Context[\"mailDocumentName\"]</param>\n        <param type=\"properties\" name=\"properties\">expr:mail:messageId=@{messageId}\n        </param>\n      </operation>\n      <operation id=\"Context.SetInputAsVar\">\n        <param type=\"string\" name=\"name\">mailDocument</param>\n      </operation>\n      <operation id=\"Context.RunOperationOnList\">\n        <param type=\"string\" name=\"id\">ProcessAttachment</param>\n        <param type=\"string\" name=\"list\">attachments</param>\n        <param type=\"boolean\" name=\"isolate\">true</param>\n        <param type=\"string\" name=\"item\">attachment</param>\n      </operation>\n      <operation id=\"RunScript\">\n        <param type=\"string\" name=\"script\">\n\n           Context[\"mailDocument\"].setPropertyValue(\"dc:title\",Context[\"subject\"]);\n           Context[\"mailDocument\"].setPropertyValue(\"mail:htmlText\",Context[\"text\"]);\n           Context[\"mailDocument\"].setPropertyValue(\"mail:recipients\",Context[\"recipients\"]);\n           Context[\"mailDocument\"].setPropertyValue(\"mail:cc_recipients\",Context[\"ccRecipients\"]);\n           Context[\"mailDocument\"].setPropertyValue(\"mail:sending_date\",Context[\"sendingDate\"]);\n\n        </param>\n      </operation>\n      <operation id=\"Context.RestoreDocumentInput\">\n        <param type=\"string\" name=\"name\">mailDocument</param>\n      </operation>\n      <operation id=\"Document.Save\"/>\n    </chain>\n    <chain id=\"ProcessAttachment\">\n      <operation id=\"Context.RestoreBlobInput\">\n        <param type=\"string\" name=\"name\">attachment</param>\n      </operation>\n      <operation id=\"Blob.AttachOnDocument\">\n        <param type=\"document\" name=\"document\">expr:Context[\"mailDocument\"]</param>\n        <param type=\"boolean\" name=\"save\">false</param>\n        <param type=\"string\" name=\"xpath\">files:files</param>\n      </operation>\n    </chain>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/automation-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent--BlobHolderFactory",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail/org.nuxeo.ecm.platform.mail.core.blobholder/Contributions/org.nuxeo.ecm.platform.mail.core.blobholder--BlobHolderFactory",
              "id": "org.nuxeo.ecm.platform.mail.core.blobholder--BlobHolderFactory",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent",
                "name": "org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent",
                "type": "service"
              },
              "version": "2023.11.13",
              "xml": "<extension point=\"BlobHolderFactory\" target=\"org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent\">\n    <blobHolderFactory class=\"org.nuxeo.ecm.platform.mail.adapter.MailMessageBlobHolderfactory\" facet=\"MailMessage\" name=\"mailMessage\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail/org.nuxeo.ecm.platform.mail.core.blobholder",
          "name": "org.nuxeo.ecm.platform.mail.core.blobholder",
          "requirements": [],
          "resolutionOrder": 417,
          "services": [],
          "startOrder": 349,
          "version": "2023.11.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.mail.core.blobholder\">\n\n  <extension\n    target=\"org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent\"\n    point=\"BlobHolderFactory\">\n    <blobHolderFactory name=\"mailMessage\" facet=\"MailMessage\"\n      class=\"org.nuxeo.ecm.platform.mail.adapter.MailMessageBlobHolderfactory\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/nxmail-blobholder-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--schema",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail/org.nuxeo.ecm.platform.mail.core.types.contrib/Contributions/org.nuxeo.ecm.platform.mail.core.types.contrib--schema",
              "id": "org.nuxeo.ecm.platform.mail.core.types.contrib--schema",
              "registrationOrder": 24,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "2023.11.13",
              "xml": "<extension point=\"schema\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n\n    <schema name=\"mail\" prefix=\"mail\" src=\"schemas/mail.xsd\"/>\n    <schema name=\"protocol\" prefix=\"prot\" src=\"schemas/protocol.xsd\"/>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--doctype",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail/org.nuxeo.ecm.platform.mail.core.types.contrib/Contributions/org.nuxeo.ecm.platform.mail.core.types.contrib--doctype",
              "id": "org.nuxeo.ecm.platform.mail.core.types.contrib--doctype",
              "registrationOrder": 22,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "2023.11.13",
              "xml": "<extension point=\"doctype\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n\n    <facet name=\"MailMessage\"/>\n\n    <doctype extends=\"Document\" name=\"MailMessage\">\n      <schema name=\"mail\"/>\n      <schema name=\"common\"/>\n      <schema name=\"dublincore\"/>\n      <schema name=\"uid\"/>\n      <schema name=\"files\"/>\n      <facet name=\"Commentable\"/>\n      <facet name=\"HiddenInCreation\"/>\n      <facet name=\"NXTag\"/>\n      <facet name=\"MailMessage\"/>\n    </doctype>\n\n    <doctype extends=\"Folder\" name=\"MailFolder\">\n      <schema name=\"protocol\"/>\n      <subtypes>\n        <type>MailMessage</type>\n      </subtypes>\n    </doctype>\n\n    <!-- allow mail folders within workspaces -->\n    <doctype append=\"true\" name=\"Workspace\">\n      <subtypes>\n        <type>MailFolder</type>\n      </subtypes>\n    </doctype>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail/org.nuxeo.ecm.platform.mail.core.types.contrib",
          "name": "org.nuxeo.ecm.platform.mail.core.types.contrib",
          "requirements": [
            "org.nuxeo.ecm.core.CoreExtensions"
          ],
          "resolutionOrder": 418,
          "services": [],
          "startOrder": 354,
          "version": "2023.11.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.mail.core.types.contrib\">\n\n  <require>org.nuxeo.ecm.core.CoreExtensions</require>\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\" point=\"schema\">\n\n    <schema name=\"mail\" src=\"schemas/mail.xsd\" prefix=\"mail\"/>\n    <schema name=\"protocol\" src=\"schemas/protocol.xsd\" prefix=\"prot\"/>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\" point=\"doctype\">\n\n    <facet name=\"MailMessage\" />\n\n    <doctype name=\"MailMessage\" extends=\"Document\">\n      <schema name=\"mail\"/>\n      <schema name=\"common\"/>\n      <schema name=\"dublincore\"/>\n      <schema name=\"uid\"/>\n      <schema name=\"files\"/>\n      <facet name=\"Commentable\" />\n      <facet name=\"HiddenInCreation\" />\n      <facet name=\"NXTag\" />\n      <facet name=\"MailMessage\" />\n    </doctype>\n\n    <doctype name=\"MailFolder\" extends=\"Folder\">\n      <schema name=\"protocol\"/>\n      <subtypes>\n        <type>MailMessage</type>\n      </subtypes>\n    </doctype>\n\n    <!-- allow mail folders within workspaces -->\n    <doctype name=\"Workspace\" append=\"true\">\n      <subtypes>\n        <type>MailFolder</type>\n      </subtypes>\n    </doctype>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/nxmail-core-types-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.types.TypeService--types",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail/org.nuxeo.ecm.platform.mail.web.types.contrib/Contributions/org.nuxeo.ecm.platform.mail.web.types.contrib--types",
              "id": "org.nuxeo.ecm.platform.mail.web.types.contrib--types",
              "registrationOrder": 4,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.types.TypeService",
                "name": "org.nuxeo.ecm.platform.types.TypeService",
                "type": "service"
              },
              "version": "2023.11.13",
              "xml": "<extension point=\"types\" target=\"org.nuxeo.ecm.platform.types.TypeService\">\n\n    <type id=\"MailMessage\">\n      <label>MailMessage</label>\n      <icon>/icons/mail.png</icon>\n      <bigIcon>/icons/mail_100.png</bigIcon>\n      <category>SimpleDocument</category>\n      <default-view>view_documents</default-view>\n      <layouts mode=\"any\">\n        <layout>mailMessage</layout>\n        <layout>noLabelFiles</layout>\n      </layouts>\n      <layouts mode=\"edit\">\n        <layout>mailMessage</layout>\n        <layout>noLabelFiles</layout>\n        <layout>dublincore</layout>\n      </layouts>\n      <!-- files content already on summary page -->\n      <layouts mode=\"view\">\n        <layout>mailMessage</layout>\n      </layouts>\n    </type>\n\n    <type id=\"MailFolder\">\n      <label>MailFolder</label>\n      <icon>/icons/mail_folder.png</icon>\n      <bigIcon>/icons/mailfolder_100.png</bigIcon>\n      <category>Collaborative</category>\n      <default-view>view_documents</default-view>\n      <layouts mode=\"any\">\n        <layout>mail_folder</layout>\n      </layouts>\n      <contentViews category=\"content\">\n        <contentView>mail_document_content</contentView>\n      </contentViews>\n      <contentViews category=\"trash_content\">\n        <contentView showInExportView=\"false\">\n          document_trash_content\n        </contentView>\n      </contentViews>\n    </type>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail/org.nuxeo.ecm.platform.mail.web.types.contrib",
          "name": "org.nuxeo.ecm.platform.mail.web.types.contrib",
          "requirements": [],
          "resolutionOrder": 419,
          "services": [],
          "startOrder": 357,
          "version": "2023.11.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.mail.web.types.contrib\">\n\n  <extension target=\"org.nuxeo.ecm.platform.types.TypeService\" point=\"types\">\n\n    <type id=\"MailMessage\">\n      <label>MailMessage</label>\n      <icon>/icons/mail.png</icon>\n      <bigIcon>/icons/mail_100.png</bigIcon>\n      <category>SimpleDocument</category>\n      <default-view>view_documents</default-view>\n      <layouts mode=\"any\">\n        <layout>mailMessage</layout>\n        <layout>noLabelFiles</layout>\n      </layouts>\n      <layouts mode=\"edit\">\n        <layout>mailMessage</layout>\n        <layout>noLabelFiles</layout>\n        <layout>dublincore</layout>\n      </layouts>\n      <!-- files content already on summary page -->\n      <layouts mode=\"view\">\n        <layout>mailMessage</layout>\n      </layouts>\n    </type>\n\n    <type id=\"MailFolder\">\n      <label>MailFolder</label>\n      <icon>/icons/mail_folder.png</icon>\n      <bigIcon>/icons/mailfolder_100.png</bigIcon>\n      <category>Collaborative</category>\n      <default-view>view_documents</default-view>\n      <layouts mode=\"any\">\n        <layout>mail_folder</layout>\n      </layouts>\n      <contentViews category=\"content\">\n        <contentView>mail_document_content</contentView>\n      </contentViews>\n      <contentViews category=\"trash_content\">\n        <contentView showInExportView=\"false\">\n          document_trash_content\n        </contentView>\n      </contentViews>\n    </type>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/nxmail-ecm-types-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.platform.mail.service.MailServiceImpl",
          "documentation": "\n    Services to to manage mails.\n\n    @author <a href=\"mailto:arussel@nuxeo.com\">Alexandre Russel</a>\n",
          "documentationHtml": "<p>\nServices to to manage mails.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.MailService",
              "descriptors": [
                "org.nuxeo.ecm.platform.mail.service.SessionFactoryDescriptor"
              ],
              "documentation": "\n\n      Extension point to register a session factory.\n\n      <p>\n        A session factory allows to create session for users. To create sessions\n        the factory needs informations such as host, port, protocol ... The list\n        of needed properties depends on the protocol used and if you need store,\n        transport or both. For more information see the\n        <a href=\"http://java.sun.com/products/javamail/javadocs/index.html\">\n          JavaMail API\n        </a>\n        .\n      </p>\n<p>\n        To get hold of a Session call: MailService mailService =\n        Framework.getService(MailSerivce.class); Transport transport =\n        mailSerivce.getTransport(\"myFactory\"); Store store =\n        mailServcie.getStore(\"myFactory\");\n      </p>\n<p>\n        The default is to get a session for the authenticated user if any, or\n        you can pass a String to get a session for a user.\n      </p>\n",
              "documentationHtml": "<p>\nExtension point to register a session factory.\n</p><p>\n</p><p>\nA session factory allows to create session for users. To create sessions\nthe factory needs informations such as host, port, protocol ... The list\nof needed properties depends on the protocol used and if you need store,\ntransport or both. For more information see the\n<a href=\"http://java.sun.com/products/javamail/javadocs/index.html\">\nJavaMail API\n</a>\n.\n</p>\n<p>\nTo get hold of a Session call: MailService mailService &#61;\nFramework.getService(MailSerivce.class); Transport transport &#61;\nmailSerivce.getTransport(&#34;myFactory&#34;); Store store &#61;\nmailServcie.getStore(&#34;myFactory&#34;);\n</p>\n<p>\nThe default is to get a session for the authenticated user if any, or\nyou can pass a String to get a session for a user.\n</p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail/org.nuxeo.ecm.platform.MailService/ExtensionPoints/org.nuxeo.ecm.platform.MailService--sessionFactory",
              "id": "org.nuxeo.ecm.platform.MailService--sessionFactory",
              "label": "sessionFactory (org.nuxeo.ecm.platform.MailService)",
              "name": "sessionFactory",
              "version": "2023.11.13"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.MailService",
              "descriptors": [
                "org.nuxeo.ecm.platform.mail.fetcher.PropertiesFetcherDescriptor"
              ],
              "documentation": "\n      Extension point to register a properties fetcher.\n      <p>\n        The responsability of a property fetcher is to fetch properties from any\n        backend.\n      </p>\n",
              "documentationHtml": "<p>\nExtension point to register a properties fetcher.\n</p><p>\nThe responsability of a property fetcher is to fetch properties from any\nbackend.\n</p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail/org.nuxeo.ecm.platform.MailService/ExtensionPoints/org.nuxeo.ecm.platform.MailService--propertiesFetcher",
              "id": "org.nuxeo.ecm.platform.MailService--propertiesFetcher",
              "label": "propertiesFetcher (org.nuxeo.ecm.platform.MailService)",
              "name": "propertiesFetcher",
              "version": "2023.11.13"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.MailService",
              "descriptors": [
                "org.nuxeo.ecm.platform.mail.action.MessageActionPipeDescriptor"
              ],
              "documentation": "\n      Extension point to register a list of actions.\n\n      <p>\n        An ActionPipe is a list of ActionMessage used for mail import. Default contribution\n        are merged but you can override them using 'override' attribute.\n\n      <code>\n        <pipe name=\"nxmail\" override=\"true\">\n            <action id=\"StartAction\" to=\"CreateDocumentsAction\">\n            org.nuxeo.ecm.platform.mail.listener.action.StartAction\n          </action>\n            <action id=\"CreateDocumentsAction\">\n            org.nuxeo.ecm.platform.mail.listener.action.CreateDocumentsAction\n          </action>\n        </pipe>\n    </code>\n</p>\n<p>\n        When registering the ActionPipe, the service looks for an ActionMessage named\n        'StartAction', so this is a mandatory attribute. Registration of the pipe ends when\n        service doesn't find the next action.\n      </p>\n<p>\n        Since 6.0, you can use Automation to control how Documents are created from email.\n        For that you need to redefine the ActionPipe.\n        <code>\n        <pipe name=\"nxmail\" override=\"true\">\n            <action>\n            org.nuxeo.ecm.platform.mail.listener.action.StartAction\n          </action>\n            <action>\n            org.nuxeo.ecm.platform.mail.listener.action.ExtractMessageInformationAction\n          </action>\n            <action chain=\"CreateMailDocumentFromAutomation\">\n            org.nuxeo.ecm.platform.mail.listener.action.CreateDocumentsFromAutomationChainAction\n          </action>\n        </pipe>\n    </code>\n\n        Then the CreateMailDocumentFromAutomation Chain whill be used to create the content.\n      </p>\n",
              "documentationHtml": "<p>\nExtension point to register a list of actions.\n</p><p>\n</p><p>\nAn ActionPipe is a list of ActionMessage used for mail import. Default contribution\nare merged but you can override them using &#39;override&#39; attribute.\n</p><p>\n</p><pre><code>        &lt;pipe name&#61;&#34;nxmail&#34; override&#61;&#34;true&#34;&gt;\n            &lt;action id&#61;&#34;StartAction&#34; to&#61;&#34;CreateDocumentsAction&#34;&gt;\n            org.nuxeo.ecm.platform.mail.listener.action.StartAction\n          &lt;/action&gt;\n            &lt;action id&#61;&#34;CreateDocumentsAction&#34;&gt;\n            org.nuxeo.ecm.platform.mail.listener.action.CreateDocumentsAction\n          &lt;/action&gt;\n        &lt;/pipe&gt;\n</code></pre><p>\n</p>\n<p>\nWhen registering the ActionPipe, the service looks for an ActionMessage named\n&#39;StartAction&#39;, so this is a mandatory attribute. Registration of the pipe ends when\nservice doesn&#39;t find the next action.\n</p>\n<p>\nSince 6.0, you can use Automation to control how Documents are created from email.\nFor that you need to redefine the ActionPipe.\n</p><p></p><pre><code>        &lt;pipe name&#61;&#34;nxmail&#34; override&#61;&#34;true&#34;&gt;\n            &lt;action&gt;\n            org.nuxeo.ecm.platform.mail.listener.action.StartAction\n          &lt;/action&gt;\n            &lt;action&gt;\n            org.nuxeo.ecm.platform.mail.listener.action.ExtractMessageInformationAction\n          &lt;/action&gt;\n            &lt;action chain&#61;&#34;CreateMailDocumentFromAutomation&#34;&gt;\n            org.nuxeo.ecm.platform.mail.listener.action.CreateDocumentsFromAutomationChainAction\n          &lt;/action&gt;\n        &lt;/pipe&gt;\n</code></pre><p>\nThen the CreateMailDocumentFromAutomation Chain whill be used to create the content.\n</p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail/org.nuxeo.ecm.platform.MailService/ExtensionPoints/org.nuxeo.ecm.platform.MailService--actionPipes",
              "id": "org.nuxeo.ecm.platform.MailService--actionPipes",
              "label": "actionPipes (org.nuxeo.ecm.platform.MailService)",
              "name": "actionPipes",
              "version": "2023.11.13"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail/org.nuxeo.ecm.platform.MailService",
          "name": "org.nuxeo.ecm.platform.MailService",
          "requirements": [],
          "resolutionOrder": 420,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.MailService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail/org.nuxeo.ecm.platform.MailService/Services/org.nuxeo.ecm.platform.mail.service.MailService",
              "id": "org.nuxeo.ecm.platform.mail.service.MailService",
              "overriden": false,
              "version": "2023.11.13"
            }
          ],
          "startOrder": 838,
          "version": "2023.11.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.MailService\">\n  <documentation>\n    Services to to manage mails.\n\n    @author <a href=\"mailto:arussel@nuxeo.com\">Alexandre Russel</a>\n  </documentation>\n  <service>\n    <provide interface=\"org.nuxeo.ecm.platform.mail.service.MailService\" />\n  </service>\n  <implementation class=\"org.nuxeo.ecm.platform.mail.service.MailServiceImpl\" />\n  <extension-point name=\"sessionFactory\">\n    <documentation>\n      Extension point to register a session factory.\n\n      <p>\n        A session factory allows to create session for users. To create sessions\n        the factory needs informations such as host, port, protocol ... The list\n        of needed properties depends on the protocol used and if you need store,\n        transport or both. For more information see the\n        <a href=\"http://java.sun.com/products/javamail/javadocs/index.html\">\n          JavaMail API\n        </a>\n        .\n      </p>\n      <p>\n        To get hold of a Session call: MailService mailService =\n        Framework.getService(MailSerivce.class); Transport transport =\n        mailSerivce.getTransport(\"myFactory\"); Store store =\n        mailServcie.getStore(\"myFactory\");\n      </p>\n      <p>\n        The default is to get a session for the authenticated user if any, or\n        you can pass a String to get a session for a user.\n      </p>\n    </documentation>\n    <object\n      class=\"org.nuxeo.ecm.platform.mail.service.SessionFactoryDescriptor\" />\n  </extension-point>\n  <extension-point name=\"propertiesFetcher\">\n    <documentation>\n      Extension point to register a properties fetcher.\n      <p>\n        The responsability of a property fetcher is to fetch properties from any\n        backend.\n      </p>\n    </documentation>\n    <object\n      class=\"org.nuxeo.ecm.platform.mail.fetcher.PropertiesFetcherDescriptor\" />\n  </extension-point>\n\n  <extension-point name=\"actionPipes\">\n    <documentation>\n      Extension point to register a list of actions.\n\n      <p>\n        An ActionPipe is a list of ActionMessage used for mail import. Default contribution\n        are merged but you can override them using 'override' attribute.\n\n      <code>\n        <pipe name=\"nxmail\" override=\"true\">\n          <action id=\"StartAction\" to=\"CreateDocumentsAction\">\n            org.nuxeo.ecm.platform.mail.listener.action.StartAction\n          </action>\n          <action id=\"CreateDocumentsAction\">\n            org.nuxeo.ecm.platform.mail.listener.action.CreateDocumentsAction\n          </action>\n        </pipe>\n      </code>\n      </p>\n\n      <p>\n        When registering the ActionPipe, the service looks for an ActionMessage named\n        'StartAction', so this is a mandatory attribute. Registration of the pipe ends when\n        service doesn't find the next action.\n      </p>\n\n      <p>\n        Since 6.0, you can use Automation to control how Documents are created from email.\n        For that you need to redefine the ActionPipe.\n        <code>\n         <pipe name=\"nxmail\"  override=\"true\">\n          <action>\n            org.nuxeo.ecm.platform.mail.listener.action.StartAction\n          </action>\n          <action>\n            org.nuxeo.ecm.platform.mail.listener.action.ExtractMessageInformationAction\n          </action>\n          <action chain=\"CreateMailDocumentFromAutomation\">\n            org.nuxeo.ecm.platform.mail.listener.action.CreateDocumentsFromAutomationChainAction\n          </action>\n         </pipe>\n        </code>\n\n        Then the CreateMailDocumentFromAutomation Chain whill be used to create the content.\n      </p>\n\n    </documentation>\n    <object\n      class=\"org.nuxeo.ecm.platform.mail.action.MessageActionPipeDescriptor\" />\n  </extension-point>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/nxmail-framework.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.MailService--propertiesFetcher",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail/org.nuxeo.ecm.platform.mail.service.MailServiceContrib/Contributions/org.nuxeo.ecm.platform.mail.service.MailServiceContrib--propertiesFetcher",
              "id": "org.nuxeo.ecm.platform.mail.service.MailServiceContrib--propertiesFetcher",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.MailService",
                "name": "org.nuxeo.ecm.platform.MailService",
                "type": "service"
              },
              "version": "2023.11.13",
              "xml": "<extension point=\"propertiesFetcher\" target=\"org.nuxeo.ecm.platform.MailService\">\n    <propertiesFetcher class=\"org.nuxeo.ecm.platform.mail.fetcher.SimplePropertiesFetcher\" name=\"simple\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.MailService--actionPipes",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail/org.nuxeo.ecm.platform.mail.service.MailServiceContrib/Contributions/org.nuxeo.ecm.platform.mail.service.MailServiceContrib--actionPipes",
              "id": "org.nuxeo.ecm.platform.mail.service.MailServiceContrib--actionPipes",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.MailService",
                "name": "org.nuxeo.ecm.platform.MailService",
                "type": "service"
              },
              "version": "2023.11.13",
              "xml": "<extension point=\"actionPipes\" target=\"org.nuxeo.ecm.platform.MailService\">\n\n    <pipe name=\"nxmail\">\n      <action>\n        org.nuxeo.ecm.platform.mail.listener.action.StartAction\n      </action>\n      <action>\n        org.nuxeo.ecm.platform.mail.listener.action.ExtractMessageInformationAction\n      </action>\n      <action>\n        org.nuxeo.ecm.platform.mail.listener.action.CheckMailUnicity\n      </action>\n      <action>\n        org.nuxeo.ecm.platform.mail.listener.action.CreateDocumentsAction\n      </action>\n    </pipe>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail/org.nuxeo.ecm.platform.mail.service.MailServiceContrib",
          "name": "org.nuxeo.ecm.platform.mail.service.MailServiceContrib",
          "requirements": [
            "org.nuxeo.ecm.platform.MailService"
          ],
          "resolutionOrder": 421,
          "services": [],
          "startOrder": 356,
          "version": "2023.11.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.mail.service.MailServiceContrib\">\n  <require>org.nuxeo.ecm.platform.MailService</require>\n\n  <extension target=\"org.nuxeo.ecm.platform.MailService\"\n    point=\"propertiesFetcher\">\n    <propertiesFetcher name=\"simple\" class=\"org.nuxeo.ecm.platform.mail.fetcher.SimplePropertiesFetcher\"/>\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.MailService\" point=\"actionPipes\">\n\n    <pipe name=\"nxmail\">\n      <action>\n        org.nuxeo.ecm.platform.mail.listener.action.StartAction\n      </action>\n      <action>\n        org.nuxeo.ecm.platform.mail.listener.action.ExtractMessageInformationAction\n      </action>\n      <action>\n        org.nuxeo.ecm.platform.mail.listener.action.CheckMailUnicity\n      </action>\n      <action>\n        org.nuxeo.ecm.platform.mail.listener.action.CreateDocumentsAction\n      </action>\n    </pipe>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/nxmail-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.lifecycle.LifeCycleService--types",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail/org.nuxeo.ecm.platform.mail.core.lifecycle.contrib/Contributions/org.nuxeo.ecm.platform.mail.core.lifecycle.contrib--types",
              "id": "org.nuxeo.ecm.platform.mail.core.lifecycle.contrib--types",
              "registrationOrder": 13,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.lifecycle.LifeCycleService",
                "name": "org.nuxeo.ecm.core.lifecycle.LifeCycleService",
                "type": "service"
              },
              "version": "2023.11.13",
              "xml": "<extension point=\"types\" target=\"org.nuxeo.ecm.core.lifecycle.LifeCycleService\">\n    <types>\n      <type name=\"MailMessage\">default</type>\n      <type name=\"MailFolder\">default</type>\n    </types>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail/org.nuxeo.ecm.platform.mail.core.lifecycle.contrib",
          "name": "org.nuxeo.ecm.platform.mail.core.lifecycle.contrib",
          "requirements": [
            "org.nuxeo.ecm.platform.mail.core.types.contrib",
            "org.nuxeo.ecm.core.CoreExtensions"
          ],
          "resolutionOrder": 422,
          "services": [],
          "startOrder": 350,
          "version": "2023.11.13",
          "xmlFileContent": "<component name=\"org.nuxeo.ecm.platform.mail.core.lifecycle.contrib\">\n\n  <require>org.nuxeo.ecm.core.CoreExtensions</require>\n  <require>org.nuxeo.ecm.platform.mail.core.types.contrib</require>\n\n  <extension target=\"org.nuxeo.ecm.core.lifecycle.LifeCycleService\" point=\"types\">\n    <types>\n      <type name=\"MailMessage\">default</type>\n      <type name=\"MailFolder\">default</type>\n    </types>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/nxmail-lifecycle-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.event.EventServiceComponent--listener",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail/org.nuxeo.ecm.platform.mail.core.listener.contrib/Contributions/org.nuxeo.ecm.platform.mail.core.listener.contrib--listener",
              "id": "org.nuxeo.ecm.platform.mail.core.listener.contrib--listener",
              "registrationOrder": 30,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.event.EventServiceComponent",
                "name": "org.nuxeo.ecm.core.event.EventServiceComponent",
                "type": "service"
              },
              "version": "2023.11.13",
              "xml": "<extension point=\"listener\" target=\"org.nuxeo.ecm.core.event.EventServiceComponent\">\n    <listener async=\"false\" class=\"org.nuxeo.ecm.platform.mail.listener.MailEventListener\" name=\"mailReceivedListener\" postCommit=\"false\" priority=\"140\">\n      <event>MailReceivedEvent</event>\n    </listener>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail/org.nuxeo.ecm.platform.mail.core.listener.contrib",
          "name": "org.nuxeo.ecm.platform.mail.core.listener.contrib",
          "requirements": [],
          "resolutionOrder": 423,
          "services": [],
          "startOrder": 351,
          "version": "2023.11.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.mail.core.listener.contrib\">\n\n  <extension target=\"org.nuxeo.ecm.core.event.EventServiceComponent\"\n    point=\"listener\">\n    <listener name=\"mailReceivedListener\" async=\"false\"\n      postCommit=\"false\" priority=\"140\"\n      class=\"org.nuxeo.ecm.platform.mail.listener.MailEventListener\">\n      <event>MailReceivedEvent</event>\n    </listener>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/nxmail-listener-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.operation.OperationServiceComponent--operations",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail/org.nuxeo.ecm.platform.mail.core.operations.contrib/Contributions/org.nuxeo.ecm.platform.mail.core.operations.contrib--operations",
              "id": "org.nuxeo.ecm.platform.mail.core.operations.contrib--operations",
              "registrationOrder": 20,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "name": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "type": "service"
              },
              "version": "2023.11.13",
              "xml": "<extension point=\"operations\" target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\">\n    <operation class=\"org.nuxeo.ecm.platform.mail.operations.MailCheckInboxOperation\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail/org.nuxeo.ecm.platform.mail.core.operations.contrib",
          "name": "org.nuxeo.ecm.platform.mail.core.operations.contrib",
          "requirements": [],
          "resolutionOrder": 424,
          "services": [],
          "startOrder": 352,
          "version": "2023.11.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.mail.core.operations.contrib\">\n  <extension target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\" point=\"operations\">\n    <operation class=\"org.nuxeo.ecm.platform.mail.operations.MailCheckInboxOperation\" />\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/operations-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.security.SecurityService--policies",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail/org.nuxeo.ecm.platform.mail.core.securitypolicy.contrib/Contributions/org.nuxeo.ecm.platform.mail.core.securitypolicy.contrib--policies",
              "id": "org.nuxeo.ecm.platform.mail.core.securitypolicy.contrib--policies",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.security.SecurityService",
                "name": "org.nuxeo.ecm.core.security.SecurityService",
                "type": "service"
              },
              "version": "2023.11.13",
              "xml": "<extension point=\"policies\" target=\"org.nuxeo.ecm.core.security.SecurityService\">\n    <policy class=\"org.nuxeo.ecm.platform.mail.security.MailMessageSecurityPolicy\" name=\"MailMessage\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail/org.nuxeo.ecm.platform.mail.core.securitypolicy.contrib",
          "name": "org.nuxeo.ecm.platform.mail.core.securitypolicy.contrib",
          "requirements": [],
          "resolutionOrder": 425,
          "services": [],
          "startOrder": 353,
          "version": "2023.11.13",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.mail.core.securitypolicy.contrib\">\n  <extension target=\"org.nuxeo.ecm.core.security.SecurityService\" point=\"policies\">\n    <policy name=\"MailMessage\" class=\"org.nuxeo.ecm.platform.mail.security.MailMessageSecurityPolicy\"/>\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/security-policy-contrib.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-platform-mail-2023.11.13.jar",
      "groupId": "org.nuxeo.ecm.platform",
      "hierarchyPath": "/grp:org.nuxeo.ecm.platform/org.nuxeo.ecm.platform.mail",
      "id": "org.nuxeo.ecm.platform.mail",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven 3.9.6\r\nBuilt-By: root\r\nBuild-Jdk: 17.0.11\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 2023.11.13-t20240501-060904\r\nBundle-Name: Nuxeo ECM Mail Core\r\nBundle-SymbolicName: org.nuxeo.ecm.platform.mail;singleton:=true\r\nBundle-Vendor: Nuxeo\r\nRequire-Bundle: org.nuxeo.ecm.core.api,org.nuxeo.ecm.core.event\r\nEclipse-LazyStart: false\r\nNuxeo-Component: OSGI-INF/automation-contrib.xml,OSGI-INF/nxmail-blobhol\r\n der-contrib.xml,OSGI-INF/nxmail-contrib.xml,OSGI-INF/nxmail-core-types-\r\n contrib.xml,OSGI-INF/nxmail-ecm-types-contrib.xml,OSGI-INF/nxmail-frame\r\n work.xml,OSGI-INF/nxmail-lifecycle-contrib.xml,OSGI-INF/nxmail-listener\r\n -contrib.xml,OSGI-INF/operations-contrib.xml,OSGI-INF/security-policy-c\r\n ontrib.xml\r\nProvide-Package: org.nuxeo.ecm.platform.mail\r\n\r\n",
      "maxResolutionOrder": 425,
      "minResolutionOrder": 416,
      "packages": [
        "nuxeo-imap-connector"
      ],
      "readme": {
        "blobProviderId": "default",
        "content": "nuxeo-platform-mail\n===================\n\n## About\n\nThe `nuxeo-platform-mail` module provides the `MailFolder` feature : you can configure Nuxeo Server to fetch emails from a Pop3/Imapc server and have Nuxeo convert the emails into Nuxeo Documents and store them inside a Folder.\n\n## Mail server connection\n\nOne important aspect of nuxeo-platform-mail consists in the fact that multiple\nemail connections can be dynamically configured from the web UI interface.\n\nThis is done by creating \"Email folder\" documents, which contain the parameters\nneeded in order to connect to the email account.\n\nPeriodaically (this is configured in {{nxmail-scheduler-config.xml}}), all\nthe email accounts defined by the \"Email folders\" are checked for new incoming\nmail.\n\nFor every new mail found in a certain account, a new corresponding\n\"Email message\" is created as a child of the \"Email folder\" corresponding to\nthe email account.\n\nAlso, an email account check can be triggered for a certain \"Email folder\",\nby clicking the \"Check email\" button which can be found in the view page of\nan \"Email folder\" document.\n\nNote: For performance reasons, only a limited number of emails are\nimported for every account check. This limit can be set when a the\ncreation/modification of a MailFolder document.\n\n## Configuration\n\n### Extension point configuration\n\nMail Servers are configured at the MailFolder level.\n\nHowever, you can also control how the MailFolder will convert emails into Nuxeo Document.\n\nThe service uses a chain of actions that is configured using the `actionPipes` extension point :\n\nThe default configuration contains :\n\n      <action>\n        org.nuxeo.ecm.platform.mail.listener.action.StartAction\n      </action>\n      <action>\n        org.nuxeo.ecm.platform.mail.listener.action.ExtractMessageInformationAction\n      </action>\n      <action>\n        org.nuxeo.ecm.platform.mail.listener.action.CheckMailUnicity\n      </action>\n      <action>\n        org.nuxeo.ecm.platform.mail.listener.action.CreateDocumentsAction\n      </action>\n      <action>\n        org.nuxeo.ecm.platform.mail.listener.action.EndAction\n      </action>\n\nThe action that will actually create the Document is `CreateDocumentsAction`.\n\nSo, if you want the mail folder to create custom Document types, you have to contribute your own Action and overriding the default chain.\n\nHowever, if you don't want to do Java Code and prefer using Automation, since 6.0, you can.\n\n### Automation Bridge\n\nSince 6.0 a new MailAction is available and allows to call an Automation Chain.\n\n\n#### Configuraring the system to use Automation\n\nYou must override the default actionPipe and use the `CreateDocumentsFromAutomationChainAction` action\n\n\t<?xml version=\"1.0\"?>\n\t<component name=\"org.nuxeo.ecm.platform.mail.automation.override\">\n\n\t  <require>org.nuxeo.ecm.platform.mail.service.MailServiceContrib</require>\n\n\t  <extension target=\"org.nuxeo.ecm.platform.MailService\" point=\"actionPipes\">\n\t    <pipe name=\"nxmail\"  override=\"true\">\n\t      <action>\n\t\torg.nuxeo.ecm.platform.mail.listener.action.StartAction\n\t      </action>\n\t      <action>\n\t\torg.nuxeo.ecm.platform.mail.listener.action.ExtractMessageInformationAction\n\t      </action>\n\t      <action chain=\"CreateMailDocumentFromAutomation\">\n\t\torg.nuxeo.ecm.platform.mail.listener.action.CreateDocumentsFromAutomationChainAction\n\t      </action>\n\t    </pipe>\n\n\t  </extension>\n\n\t</component>\n\n#### Automation Execution Context\n\nThe Automation context is filled with the ExecutionContext used in the MailActionPipe :\n\n - `mailFolder` : is the target MailFolder document\n - `mailDocumentName` : is the computed name for the Mail Document (it is not required to use it)\n - `executionContext` : is the `ExecutionContext` defined in the pipe\n - all properties available in the `ExecutionContext` are dumped at root of Automation Context :\n    - `subject` is the mail subject\n    - `recipients` is the list of recipients\n    - `ccRecipients` is the list of recipients in CC\n    - `sendingDate` is the date the mail was sent\n    - `attachments` is the list of attached Blobs\n\n#### Chain example\n\nThe Chain itself should be something like :\n\n\n    <chain id=\"CreateMailDocumentFromAutomation\">\n      <operation id=\"Context.RestoreDocumentInput\">\n        <param type=\"string\" name=\"name\">mailFolder</param>\n      </operation>\n      <operation id=\"Document.Create\">\n        <param type=\"string\" name=\"type\">MailMessage</param>\n        <param type=\"string\" name=\"name\">expr:Context[\"mailDocumentName\"]</param>\n        <param type=\"properties\" name=\"properties\">expr:mail:messageId=@{messageId}\n        </param>\n      </operation>\n      <operation id=\"Context.SetInputAsVar\">\n        <param type=\"string\" name=\"name\">mailDocument</param>\n      </operation>\n      <operation id=\"Context.RunScript\">\n        <param type=\"string\" name=\"script\">\n\n           Context[\"mailDocument\"].setPropertyValue(\"dc:title\",Context[\"subject\"]);\n           Context[\"mailDocument\"].setPropertyValue(\"mail:recipients\",Context[\"recipients\"]);\n           Context[\"mailDocument\"].setPropertyValue(\"mail:cc_recipients\",Context[\"ccRecipients\"]);\n           Context[\"mailDocument\"].setPropertyValue(\"mail:sending_date\",Context[\"sendingDate\"]);\n\n        </param>\n      </operation>\n      <operation id=\"Context.RunOperationOnList\">\n        <param type=\"string\" name=\"id\">ProcessAttachment</param>\n        <param type=\"string\" name=\"list\">attachments</param>\n        <param type=\"boolean\" name=\"isolate\">true</param>\n        <param type=\"string\" name=\"item\">attachment</param>\n      </operation>\n      <operation id=\"Context.RestoreDocumentInput\">\n        <param type=\"string\" name=\"name\">mailDocument</param>\n      </operation>\n      <operation id=\"Document.Save\"/>\n    </chain>\n    <chain id=\"ProcessAttachment\">\n      <operation id=\"Context.RestoreBlobInput\">\n        <param type=\"string\" name=\"name\">attachment</param>\n      </operation>\n      <operation id=\"Blob.Attach\">\n        <param type=\"document\" name=\"document\">expr:Context[\"mailDocument\"]</param>\n        <param type=\"boolean\" name=\"save\">false</param>\n        <param type=\"string\" name=\"xpath\">files:files</param>\n      </operation>\n    </chain>\n\n\n## About using SSL with you mail server\n\nIf you connect to your mail server using SSL, your server needs to\nhave a valid certificate, that is, a certificate that is issued by a\nknown Authority.\n\nIf this is not the case (you're using a self-made\ncertificate), then the JVM will refuse to connect and you'll have a\nSSLHandShake error.\n\nTo be able to connect with a server with a self-signed certificate, you\nneed to add this certificate to the trusted certificate using keytool\nwith a command such as (see man keytool for more information):\n\n    keytool -import -trustcacerts -file mail.cer -keystore thekeystore\n\nIf you don't have the certificate of the mail server you can get it\nwith the following command:\n\n    openssl s_client -connect my.mailserver.com:PORT\n\nYou can either import the certificate in the cacerts of your JVM, or\ncreate a new keystore and start the jvm with:\n\n    -Djavax.net.ssl.trustStore=/home/foo/.keystore\n\nAnother option is to use an helper class from:\nhttp://blogs.sun.com/andreas/entry/no_more_unable_to_find\nand to follow this step:\n\n1/ run the TestConnection class in eclipse as an application with your\n   connection parameters\n\n2/ if not working (error 'unable to find valid certification path to\n   requested target') compile the java class:\n   $ java InstallCert.java\n\n3/ execute on imap server for instance:\n   $ java InstallCert mail.example.com\n   or\n   $ java InstallCert mail.example.com:993\n\n4/ make sure it is a good key before entering, and make sure it's been\n   added to the default keystore in $JAVA_HOME/jre/lib/security/cacerts\n\n5/ reproduce steps if needed, *do not forget to delete* the local file\n   'jssecacerts' that's been created (otherwise the default keystore won't\n   be updated anymore)\n",
        "digest": "b97cb65a06e7661b30712d61fd7f451e",
        "encoding": "UTF-8",
        "length": 7916,
        "mimeType": "text/plain",
        "name": "README.md"
      },
      "requirements": [
        "org.nuxeo.ecm.core.api",
        "org.nuxeo.ecm.core.event"
      ],
      "version": "2023.11.13"
    }
  ],
  "creationDate": 1714983515104,
  "key": "Nuxeo Platform-2023.11",
  "name": "Nuxeo Platform",
  "operations": [
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Chain",
      "contributingComponent": "org.nuxeo.mail.automation.chains",
      "hierarchyPath": "/op:CreateMailDocumentFromAutomation",
      "label": "CreateMailDocumentFromAutomation",
      "name": "CreateMailDocumentFromAutomation",
      "operationClass": "org.nuxeo.ecm.automation.core.impl.OperationChainCompiler.CompiledChainImpl",
      "params": [],
      "signature": [
        "void",
        "document"
      ],
      "url": "CreateMailDocumentFromAutomation",
      "version": "2023.11.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Services",
      "contributingComponent": "org.nuxeo.ecm.platform.mail.core.operations.contrib",
      "description": "Checks for unread emails in the inbox of an Email Folder passed as input.",
      "hierarchyPath": "/op:Mail.CheckInbox",
      "label": "Check Mail Inbox",
      "name": "Mail.CheckInbox",
      "operationClass": "org.nuxeo.ecm.platform.mail.operations.MailCheckInboxOperation",
      "params": [],
      "signature": [
        "document",
        "void"
      ],
      "url": "Mail.CheckInbox",
      "version": "2023.11.13"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Chain",
      "contributingComponent": "org.nuxeo.mail.automation.chains",
      "hierarchyPath": "/op:ProcessAttachment",
      "label": "ProcessAttachment",
      "name": "ProcessAttachment",
      "operationClass": "org.nuxeo.ecm.automation.core.impl.OperationChainCompiler.CompiledChainImpl",
      "params": [],
      "signature": [
        "void",
        "blob"
      ],
      "url": "ProcessAttachment",
      "version": "2023.11.13"
    }
  ],
  "packages": [
    {
      "@type": "NXPackage",
      "bundles": [
        "org.nuxeo.ecm.platform.mail"
      ],
      "conflicts": [],
      "dependencies": [],
      "hierarchyPath": "/nuxeo-imap-connector-2023.11.13",
      "id": "nuxeo-imap-connector-2023.11.13",
      "name": "nuxeo-imap-connector",
      "optionalDependencies": [],
      "packageType": "addon",
      "title": "Nuxeo IMAP Connector",
      "version": "2023.11.13"
    }
  ],
  "pluginSnapshots": {},
  "releaseDate": 1714983515104,
  "version": "2023.11"
}